package com.strategy.exampleInJDK;


import java.util.Arrays;
import java.util.Comparator;

public class Test {
    public static void main(String[] args) {
        Integer[] data = {9,1,2,8,4,3};

        //实现升序排序，返回-1放左边，1放右边，0保持不变
        //比较器是一个接口（策略接口） ，这里通过内部类的方式实现了接口 （策略的实现）
        Comparator<Integer> comparator = new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                if (o1 > o2) {
                    return 1;
                } else {
                    return -1;
                }
            }
        };

        //通过lambda表达式构造一个comparator的实现，因为comparator里面只有一个接口要被实现
        Comparator<Integer> comparator2 =  ((o1,o2) -> {
            if (o1 > o2) {
                return -1;
            } else {
                return 1;
            }
        });

        //sort方法进行排序,使用不同的 接口实现就会得到不同的结果
        //升序
        Arrays.sort(data , comparator);
        //降序
        //Arrays.sort(data , comparator2);

        System.out.println(Arrays.asList(data));

    }
}
